home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PIE-FLWO.ZIP
/
FLOGIN.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-05-05
|
11KB
|
537 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
String TSTRING001(5)
String TSTRING002(1)
String TSTRING003(8)
String TSTRING004(45)
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
Byte BYTE001
Byte BYTE002
Byte BYTE003
Byte BYTE004
Byte BYTE005
Byte BYTE006
Byte BYTE007
Declare Procedure PROC001(String STRING013)
Declare Procedure PROC002(String STRING014)
Declare Procedure PROC003(Byte BYTE008, String STRING012)
Declare Procedure PROC004(Byte BYTE010, Byte BYTE011, Boolean BOOLEAN001)
Declare Procedure PROC005(Byte BYTE009)
Declare Procedure PROC006()
Declare Procedure PROC007()
Declare Procedure PROC008()
Declare Procedure PROC009()
Declare Procedure PROC010()
;------------------------------------------------------------------------------
STRING005 = Len(U_Name())
BYTE002 = Len(U_Name())
For BYTE003 = 1 To BYTE002
STRING009 = Left(U_Name(), BYTE003)
STRING009 = Right(STRING009, 1)
If ((STRING009 == ".") || (STRING009 == " ")) Continue
STRING007 = STRING007 + STRING009
Next
If (BYTE002 >= 6) STRING011 = Left(STRING007, 6)
If (BYTE002 < 6) STRING011 = Left(STRING007, BYTE002)
STRING011 = STRING011 + STRING005
If (!Exist(PPEPath() + "flogin.cfg")) PROC006()
FOpen 1, PPEPath() + "flogin.cfg", 0, 0
For BYTE005 = 0 To 4
FGet 1, TSTRING001(BYTE005)
Next
FGet 1, TSTRING002(0)
For BYTE005 = 0 To 8
FGet 1, TSTRING003(BYTE005)
BYTE004 = BYTE005
If (TSTRING003(BYTE005) == "E-O-F") Break
Next
FClose 1
If (Exist(PPEPath() + "\DATA\" + STRING011 + ".dat")) Goto LABEL001
STRING008 = "E-O-F"
Goto LABEL002
:LABEL001
PROC002(U_Name())
:LABEL002
If (STRING008 == "E-O-F") Then
If (Exist(PPEPath() + "\DATA\" + STRING011 + ".dat")) Delete PPEPath() + "\DATA" + STRING011 + ".dat"
FCreate 1, PPEPath() + "\DATA\" + STRING011 + ".dat", 1, 0
STRING005 = U_Name() + ";YES;YES"
For BYTE002 = 0 To BYTE004 * 2 - 1
STRING005 = STRING005 + ";1"
Next
FPutLn 1, STRING005
FClose 1
Endif
PROC003(1, TSTRING002(0))
TSTRING002(1) = STRING007
PROC003(2, TSTRING002(0))
TSTRING002(0) = STRING007
PROC002(U_Name())
BYTE001 = Len(STRING008)
BYTE003 = Len(U_Name())
BYTE001 = BYTE001 - BYTE003
If (BYTE001 == 8 + (BYTE004 * 2) * 2) Goto LABEL003
Cls
PrintLn "IT SEEMS LIKE *YOUR* DATA LINE IS INVALID...ERASING LINE."
PrintLn "GENERATING A DEFAULT LINE..."
PrintLn "PLEASE CHANGE TO YOUR OWN SETTINGS BY RUNING THE CFG PPE."
PrintLn
PrintLn "THIS ERROR OCCURED BECAUSE SOMETHING SYSOP DID, NOT YOU."
If (Exist(PPEPath() + "\DATA\" + STRING011 + ".dat")) Delete PPEPath() + "\DATA\" + STRING011 + ".dat"
FCreate 1, PPEPath() + "\DATA\" + STRING011 + ".dat", 1, 0
STRING005 = U_Name() + ";YES;YES"
For BYTE002 = 0 To BYTE004 * 2 - 1
STRING005 = STRING005 + ";1"
Next
FPutLn 1, STRING005
FClose 1
Delay 50
:LABEL003
PROC002(U_Name())
PROC003(2, STRING008)
TSTRING004(0) = STRING007
PROC003(3, STRING008)
TSTRING004(1) = STRING007
STRING005 = Upper(GetToken())
If (STRING005 == "/CFG") Then
Cls
Print TSTRING002(0) + "LOADING PLEASE WAIT ["
For BYTE002 = 0 To BYTE004 * 2 - 1
Print TSTRING002(0) + "■"
Next
Print TSTRING002(0) + "]"
For BYTE002 = 0 To BYTE004 * 2 - 1
AnsiPos 22 + BYTE002, 1
Print TSTRING002(1) + "■"
PROC003(4 + BYTE002, STRING008)
TSTRING004(2 + BYTE002) = STRING007
Next
PROC010()
Endif
Cls
PROC009()
End
;------------------------------------------------------------------------------
Procedure PROC009()
If (TSTRING004(1) == "NO ") Then
TSTRING001(5) = TSTRING004(0)
PROC008()
Endif
PROC001(TSTRING004(0))
TSTRING001(5) = TSTRING004(0)
:LABEL004
STRING006 = ""
While (STRING006 == "") Do
STRING006 = Inkey()
EndWhile
If (((STRING006 == "LEFT") || (STRING006 == "RIGHT")) && (Upper(TSTRING001(5)) == "YES")) Then
TSTRING001(5) = "NO "
ElseIf (((STRING006 == "RIGHT") || (STRING006 == "LEFT")) && (Upper(TSTRING001(5)) == "NO ")) Then
TSTRING001(5) = "YES"
Endif
If ((STRING006 == Chr(13)) && ((Upper(TSTRING001(5)) == "YES") || (Upper(TSTRING001(5)) == "NO "))) PROC008()
PROC001(TSTRING001(5))
Goto LABEL004
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
PROC002(U_Name())
If (TSTRING001(5) == "YES") Then
For BYTE002 = BYTE004 + 4 To BYTE004 * 2 + 3
PROC003(BYTE002, STRING008)
If (STRING007 == "1") PROC005(BYTE002 - BYTE004 - 4)
Next
Endif
If (TSTRING001(5) == "NO ") Then
For BYTE002 = 4 To BYTE004 + 3
PROC003(BYTE002, STRING008)
If (STRING007 == "1") PROC005(BYTE002 - 4)
Next
Endif
End
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Byte BYTE008, String STRING012)
BYTE001 = Len(STRING012)
STRING010 = 0
STRING007 = ""
For BYTE003 = 1 To BYTE001
STRING009 = Left(STRING012, BYTE003)
STRING009 = Right(STRING009, 1)
If (STRING009 == ";") Then
Inc STRING010
If (STRING010 == BYTE008) Break
STRING007 = ""
Endif
If (!(STRING009 == ";")) STRING007 = STRING007 + STRING009
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC005(Byte BYTE009)
PROC003(2, TSTRING003(BYTE009))
STRING005 = Left(STRING007, 1)
BYTE001 = Len(STRING007)
BYTE001 = BYTE001 - 1
STRING007 = Right(STRING007, BYTE001)
If (STRING005 == "%") DispFile STRING007, 0
If (STRING005 == "!") Call STRING007
EndProc
;------------------------------------------------------------------------------
Procedure PROC001(String STRING013)
Cls
PrintLn
PrintLn
If (STRING013 == "YES") PrintLn TSTRING001(0) + " " + TSTRING001(2) + " " + TSTRING001(3)
If (STRING013 == "NO ") PrintLn TSTRING001(0) + " " + TSTRING001(1) + " " + TSTRING001(4)
EndProc
;------------------------------------------------------------------------------
Procedure PROC002(String STRING014)
FOpen 1, PPEPath() + "\DATA\" + STRING011 + ".dat", 0, 0
FGet 1, STRING008
FClose 1
PROC003(1, STRING008)
If (!(STRING007 == STRING014)) STRING008 = "E-O-F"
EndProc
;------------------------------------------------------------------------------
Procedure PROC010()
Cls
DispFile PPEPath() + "flogin.pcb", 0
For BYTE002 = 0 To 2
PROC004(3, BYTE002, 0)
PROC004(0, BYTE002, 0)
Next
For BYTE002 = 0 To BYTE004 - 1
PROC004(2, BYTE002, 0)
PROC004(1, BYTE002, 0)
Next
BYTE006 = 0
BYTE007 = 0
PROC004(BYTE007, BYTE006, 1)
:LABEL005
STRING006 = ""
While (STRING006 == "") Do
STRING006 = Inkey()
EndWhile
If ((STRING006 == "UP") && (BYTE007 < 3)) Then
PROC004(BYTE007, BYTE006, 0)
Inc BYTE007
BYTE006 = 0
Endif
If ((STRING006 == "DOWN") && (BYTE007 > 0)) Then
PROC004(BYTE007, BYTE006, 0)
Dec BYTE007
BYTE006 = 0
Endif
If ((((BYTE007 == 3) && (BYTE006 < 1)) || ((BYTE007 == 0) && (BYTE006 < 1))) && (STRING006 == "RIGHT")) Then
PROC004(BYTE007, BYTE006, 0)
Inc BYTE006
Endif
If ((((((BYTE007 == 0) || (BYTE007 == 1)) || (BYTE007 == 2)) || (BYTE007 == 3)) && (STRING006 == "LEFT")) && (BYTE006 > 0)) Then
PROC004(BYTE007, BYTE006, 0)
Dec BYTE006
Endif
If ((((BYTE007 == 1) || (BYTE007 == 2)) && (STRING006 == "RIGHT")) && (BYTE006 < BYTE004 - 1)) Then
PROC004(BYTE007, BYTE006, 0)
Inc BYTE006
Endif
If ((STRING006 == Chr(32)) || (STRING006 == Chr(13))) Then
If (BYTE007 == 0) Then
If (BYTE006 == 0) Then
Delete PPEPath() + "\DATA\" + STRING011 + ".dat"
FCreate 1, PPEPath() + "\DATA\" + STRING011 + ".dat", 1, 0
STRING005 = U_Name() + ";" + TSTRING004(0) + ";" + TSTRING004(1)
For BYTE002 = 2 To BYTE004 * 2 + 1
STRING005 = STRING005 + ";" + TSTRING004(BYTE002)
Next
FPutLn 1, STRING005
FClose 1
Cls
End
Endif
If (BYTE006 == 1) PROC007()
Endif
If (BYTE007 == 2) Then
If (TSTRING004(BYTE006 + 2) == "0") Then
TSTRING004(BYTE006 + 2) = "1"
AnsiPos 5, 12 + BYTE006
Print TSTRING002(0) + "[X]"
Goto LABEL006
Endif
If (TSTRING004(BYTE006 + 2) == "1") Then
TSTRING004(BYTE006 + 2) = "0"
AnsiPos 5, 12 + BYTE006
Print TSTRING002(1) + "[ ]"
Endif
Endif
:LABEL006
If (BYTE007 == 1) Then
If (TSTRING004(BYTE004 + BYTE006 + 2) == "0") Then
TSTRING004(BYTE004 + BYTE006 + 2) = "1"
AnsiPos 38, 12 + BYTE006
Print TSTRING002(0) + "[X]"
Goto LABEL007
Endif
If (TSTRING004(BYTE004 + BYTE006 + 2) == "1") Then
TSTRING004(BYTE004 + BYTE006 + 2) = "0"
AnsiPos 38, 12 + BYTE006
Print TSTRING002(1) + "[ ]"
Endif
Endif
:LABEL007
If (BYTE007 == 3) Then
If ((BYTE006 == 0) && (TSTRING004(0) == "YES")) Then
TSTRING004(0) = "NO "
Goto LABEL008
Endif
If (BYTE006 == 0) Then
TSTRING004(0) = "YES"
Endif
:LABEL008
If ((BYTE006 == 1) && (TSTRING004(1) == "YES")) Then
TSTRING004(1) = "NO "
Goto LABEL009
Endif
If (BYTE006 == 1) Then
TSTRING004(1) = "YES"
Endif
Endif
Endif
:LABEL009
PROC004(BYTE007, BYTE006, 1)
Goto LABEL005
EndProc
;------------------------------------------------------------------------------
Procedure PROC004(Byte BYTE010, Byte BYTE011, Boolean BOOLEAN001)
If ((BYTE011 == 0) && (BYTE010 == 3)) Then
AnsiPos 5, 9
If (BOOLEAN001 == 1) Print TSTRING002(0) + "DEFAULT ALTERANTIVE: [" + TSTRING002(1) + TSTRING004(0) + TSTRING002(0) + "]"
If (BOOLEAN001 == 0) Print TSTRING002(0) + "DEFAULT ALTERANTIVE: [" + TSTRING002(1) + Lower(TSTRING004(0)) + TSTRING002(0) + "]"
Endif
If ((BYTE011 == 1) && (BYTE010 == 3)) Then
AnsiPos 38, 9
If (BOOLEAN001 == 1) Print TSTRING002(0) + "USE FAST LOGIN PROMPT: [" + TSTRING002(1) + TSTRING004(1) + TSTRING002(0) + "]"
If (BOOLEAN001 == 0) Print TSTRING002(0) + "USE FAST LOGIN PROMPT: [" + TSTRING002(1) + Lower(TSTRING004(1)) + TSTRING002(0) + "]"
Endif
If ((BYTE011 == 0) && (BYTE010 == 0)) Then
AnsiPos 5, 21
If (BOOLEAN001 == 1) Print TSTRING002(0) + "[" + TSTRING002(1) + "END PPE" + TSTRING002(0) + "]"
If (BOOLEAN001 == 0) Print TSTRING002(0) + "[" + TSTRING002(1) + "end ppe" + TSTRING002(0) + "]"
Endif
If ((BYTE011 == 1) && (BYTE010 == 0)) Then
AnsiPos 15, 21
If (BOOLEAN001 == 1) Print TSTRING002(0) + "[" + TSTRING002(1) + "ABOUT" + TSTRING002(0) + "]"
If (BOOLEAN001 == 0) Print TSTRING002(0) + "[" + TSTRING002(1) + "about" + TSTRING002(0) + "]"
Endif
Select Case (BYTE010)
Case 1, 2
PROC003(1, TSTRING003(BYTE011))
If (BYTE010 == 1) Then
AnsiPos 38, 12 + BYTE011
If (BOOLEAN001 == 0) Then
If (TSTRING004(BYTE004 + BYTE011 + 2) == "0") Print TSTRING002(0) + "[ ] " + STRING007
If (TSTRING004(BYTE004 + BYTE011 + 2) == "1") Print TSTRING002(0) + "[X] " + STRING007
Endif
If (BOOLEAN001 == 1) Then
If (TSTRING004(BYTE004 + BYTE011 + 2) == "0") Print TSTRING002(1) + "[ ]"
If (TSTRING004(BYTE004 + BYTE011 + 2) == "1") Print TSTRING002(1) + "[X]"
Endif
Endif
Case 2
AnsiPos 5, 12 + BYTE011
If (BOOLEAN001 == 0) Then
If (TSTRING004(2 + BYTE011) == "0") Print TSTRING002(0) + "[ ] " + STRING007
If (TSTRING004(2 + BYTE011) == "1") Print TSTRING002(0) + "[X] " + STRING007
Endif
Case 1
If (TSTRING004(2 + BYTE011) == "0") Print TSTRING002(1) + "[ ]"
If (TSTRING004(2 + BYTE011) == "1") Print TSTRING002(1) + "[X]"
End Select
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
Cls
PrintLn TSTRING002(0) + " █▀▀▀▓"
PrintLn " ▀ ▀ █▀▓▀▀▀▀▀█▄▄▓▄▄▄▄▄▄▓▀▀▀█▄▄▄▓ ░ ▀▓▀▀▀█▄"
PrintLn " ▄ ▓ ▄▄▓▄▓▄▄▄▄▄ ▀ ■▄▄▄▄▓ ▄■ ▄▄▄▓▄▄▄▄▓▄ ▀▀▀█▀ ▀ ▀"
PrintLn " ▄ ▓▄■ ▒ █▄██▓ ▐▄██▄ ░█████▌ █████ ██▓▄▓ u▓ ▄ ▄▓"
PrintLn " ░▒▓█▓█▓███▒█ ░ ▓████ █▓██▌ ███▓█ █▓███ ▐██▓█▌Z▒ █▒██▓█▒██▓▒░"
PrintLn " ░▒▓█▒████▓██ ■ ▐██▓██ █▄██▌ ▐█▓███ ▐█████ ▐██▄█▌!░ ███▓█████▓▒░"
PrintLn " ░▒▓████▓█▒█▓ ░ ▐█████ ██▓▀ ▐█▄███ ▐██▓██▄█▀▓█▀ ■ ▓████▓█▓█▓▒░"
PrintLn " ▐▀ ▓ ▒ █████■▄▀▀ ▒ ███▓█ █████ ▄▄▄▓▄ ░ ▐▀ ▀■"
PrintLn " ▓ ██▀▐█ ▄▓▄▄▓ ▄██▓█▓ ▀■███ ████▓ ▒"
PrintLn " " + TSTRING002(1) + "1993" + TSTRING002(0) + " █ ▓▀▓▀▀▀▀ █ ▀█ ▓▀▀▀▀▀▓ █▄▄ ▓▀▓▀▀▀▀ ▓ " + TSTRING002(1) + "1996" + TSTRING002(0)
PrintLn " █▄▄▄▄▄█▀▓▀▀ █▄▄▄█▀▓ ▒ ▓ ▀▐▄■▄▄▄▓▄█▀▓▀▀ ▀ ▀"
PrintLn " ▄ ▒ ▓ ░ ▒ ▒ ▀"
PrintLn " ░ ▓▄▄▄░ ▄"
PrintLn " 'LIVE AND KICKING SINCE 1993'"
PrintLn "┌─────────────────────────────────────────────────────────────────────────────┐"
PrintLn "│ [FAST LOGIN WIZARD v1.5a CODED BY " + TSTRING002(1) + "ODIN" + TSTRING002(0) + " OF " + TSTRING002(1) + "PROVIDENCE " + TSTRING002(0) + "IN DA NINETYNINETYSIX] │"
PrintLn "├─────────────────────────────────────────────────────────────────────────────┤"
PrintLn "│ [DO YOU WANT PURE QUALiTY? JUST CHECK OUT YOUR NEREAST BOARD FOR OUR PPE:s] │"
PrintLn "├─────────────────────────────────────────────────────────────────────────────┤"
PrintLn "│ WWW : " + TSTRING002(1) + "http://infinity.beve.blacksburg.va.us/~odin/pie!.html " + TSTRING002(0) + "(800x600x256) │"
PrintLn "│ E-MAIL: " + TSTRING002(1) + "odin@infinity.beve.blacksburg.va.us " + TSTRING002(0) + " THE IRC:" + TSTRING002(1) + " #PIE on the EFNet" + TSTRING002(0) + " │"
Print "└─────────────────────────────────────────────────────────────────────────────┘ "
Wait
PROC010()
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
Cls
Print "CAN'T FIND 'FLOGIN.CFG'. PLEASE INFORM SYSOP. PPE DISABLED."
PrintLn
PrintLn
Wait
End
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 8 Cls
; 2 Wait
; 82 Goto
; 83 Let
; 26 Print
; 32 PrintLn
; 89 If
; 2 DispFile
; 3 FCreate
; 2 FOpen
; 5 FClose
; 4 FGet
; 3 FPutLn
; 3 Delete
; 1 Delay
; 4 Inc
; 2 Dec
; 1 Call
; 11 AnsiPos
; 10 EndProc
;
;
; ■ Functions used :
;
; 14 *
; 196 +
; 16 -
; 93 ==
; 18 <
; 13 <=
; 2 >
; 27 >=
; 58 !
; 44 &&
; 24 ||
; 6 Len(
; 2 Lower()
; 5 Upper()
; 5 Left()
; 3 Right()
; 3 Chr()
; 11 U_Name()
; 2 Inkey()
; 13 PPEPath()
; 1 GetToken()
; 4 Exist()
;
;------------------------------------------------------------------------------
;
; Analysis flags : C
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 13 For/Next
; 2 While/EndWhile
; 35 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------